import java.util.concurrent.*;

/**
 * @Grup:PACKAGE_NAME
 * @Auther:cola
 * @Data:2021/4/1-2021-04-10:44
 * @version:1.0
 */
public class ThreadDemo5 {
    public static void main(String[] args) {
        //创建线程池---4种
        //第一种创建一个单线程的线程池
        /*ExecutorService es= Executors.newSingleThreadExecutor();
        es.execute(new MyRunnable6());
        es.execute(new MyRunnable6());*/
        //创建一个固定大小的线程池
        /*ExecutorService es1=Executors.newFixedThreadPool(2);
        es1.execute(new MyRunnable6());
        es1.execute(new MyRunnable6());*/

        /*
        * 创建一个可缓存的线程池,如果线程的大小超过了处理任务所需要的线程,
        * 那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,
        * 此线程又可以智能的添加新线程来处理任务,此线程不会对线程大小做限制,
        * 线程池大小又完全依赖于操作系统(或者说JVM)能够创建的最大线程大小
        * */
        /*ExecutorService es2=Executors.newCachedThreadPool();
        es2.execute(new MyRunnable6());
        es2.execute(new MyRunnable6());*/

        //
        ScheduledExecutorService ss3=Executors.newScheduledThreadPool(3);
        /*ss3.execute(new MyRunnable6());
        ss3.execute(new MyRunnable6());
        ss3.execute(new MyRunnable6());*/
        ss3.schedule(new MyRunnable6(),3000, TimeUnit.MILLISECONDS);
    }
}
class MyRunnable6 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i <10 ; i++) {
            try {
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"-->"+i);
        }
    }
}
